#include <iostream>
#include <vector>
#include <queue>
#include <deque>
using namespace std;

int main()
{
        ios::sync_with_stdio(false);
        cin.tie(0);

        int n = 0, k = 0;
        cin >> n >> k;
        vector<int> arr(n, 0);
        for(int i = 0; i < n; i++){
                cin >> arr[i];
        }

        deque<int> qmin, qmax;
        vector<int> ans_min, ans_max;
        for(int i = 0; i < k - 1; i++){
                while(!qmin.empty() && arr[i] < arr[qmin.back()]){
                        qmin.pop_back();
                }
                qmin.push_back(i);

                while(!qmax.empty() && arr[i] > arr[qmax.back()]){
                        qmax.pop_back();
                }
                qmax.push_back(i);
        }

        for(int l = 0, r = k - 1; r < n; l++, r++){
                while(!qmin.empty() && arr[r] < arr[qmin.back()]){
                        qmin.pop_back();
                }
                qmin.push_back(r);

                ans_min.push_back(arr[qmin.front()]);
                if(qmin.front() == l){
                        qmin.pop_front();
                }

                while(!qmax.empty() && arr[r] > arr[qmax.back()]){
                        qmax.pop_back();
                }
                qmax.push_back(r);

                ans_max.push_back(arr[qmax.front()]);
                if(qmax.front() == l){
                        qmax.pop_front();
                }
        }
        int size = ans_min.size();
        for(int i = 0; i < size; i++){
                cout << ans_min[i] << ' ';
        }
        cout << '\n';

        for(int i = 0; i < size; i++){
                cout << ans_max[i] << ' ';
        }
        cout << '\n';

        return 0;
}